package cn.zhaoyuening.leasecloud.common.dao;

import java.io.Serializable;
import java.util.List;

/**
 * Created by zhao on 17-1-10.
 */
public interface BaseDao<T> {
    void save(T t);
    void delete(T t);
    T findById(Serializable id);

    /**
     * 添加或编辑
     * @param t
     */
    void addOrEdit(T t);
    /**
     * 查找所有
     * @return
     */
    List<T> findAll();
    /**
     * 高级查询
     * @param condition where 条件语句
     * @return
     */
    List<T> findAll(String condition, Object[] objects);
    /**
     * 高级查询，分页查询
     * @param condition where 条件语句
     * @param params 参数对象
     * @param startIndex 起始索引
     * @param pageSize 页面大小
     * @return
     */
    List<T> findAll(String condition, Object[] params, int startIndex, int pageSize);
    /**
     * 取得所有记录数量
     * @return
     */
    long getTotalRecord();


}
